Method for determining noise level

ABSTRACT

The present invention relates to a method for determining noise levels in a subband of an image. The method comprises receiving the subband of the image, defining block regions in the at least two space domains of the subband, for each defined block region, identifying first wavelet coefficients associated with coordinate values in the at least two space domains in the defined block region, computing a correlation matrix between identified wavelet coefficients to determine the correlation between first wavelet coefficients according to the at least one color domain, computing second wavelet coefficients, the computation of second wavelet coefficients being based on the correlation matrix and the first wavelet coefficients, computing at least one noise level, the noise level computation being based on at least one second wavelet coefficient and providing the at least one noise level.

BACKGROUND OF THE INVENTION

The present invention relates to noise estimation domain in particularin the domain of image or video processing.

The approaches described in this section could be pursued, but are notnecessarily approaches that have been previously conceived or pursued.Therefore, unless otherwise indicated herein, the approaches describedin this section are not prior art to the claims in this application andare not admitted to be prior art by inclusion in this section.Furthermore, all embodiments are not necessarily intended to solve allor even any of the problems brought forward in this section.

A possible way to estimate the amount of noise is to use robuststatistical method. For instance, (see Donoho, David L.; Iain M.Johnstone, December 1995, “Adapting to Unknown Smoothness via WaveletShrinkage”. Journal of the American Statistical Association Vol. 90, No.432: 1200-1244), a possible way to estimate a noise level of an imagewhen the noise is white noise consists in computing the median of ahigh-pass subband.

The underlying expectation is that the median is carrying onlyinformation about the noise, and that the signal is sparse enough tohave little impact on this median. Therefore, coefficients (in which thesignal is relevant) represent less than few percent of the coefficientpopulation).

In particular, the median of the absolute values of coefficients may beproportional to the noise standard deviation. This median may be scaledwith an appropriate constant to yield an estimate of the standarddeviation of the Gaussian noise.

σ=median(|s|)×f with s the signal

The factor f (for instance f=1/0.67) may be estimated by measuring themedian of values drawn from a known Gaussian generator of known standarddeviation.

Such estimation has drawbacks as this expectation (i.e that the signalis sparsely represented in the high pass subband) is not alwaysadequate.

Indeed, when the image is highly textured, or contains parts that arehighly textured, the median may produce an estimate of the noise levelthat is much higher than what it ought to be: when a median is computedover a highly textured image, state of the art methods overestimate theamount of noise, apply a stronger than necessary noise reduction andwash out the textures that were confused with noise by the noiseestimation algorithm.

There is thus a need for having a noise estimation method robust even ifparts of the images are highly textured and then to improve imagequality through a more robust noise level estimation leading to smothernoise reduction, and less aggressive flattening of textures in thehighly textured images.

SUMMARY OF THE INVENTION

The invention relates to a method for determining noise levels in asubband of an image, the subband comprising at least one color domainand at least two space domains, said subband comprising first waveletcoefficients associated with coordinate value in the at least one colordomain and the at least two space domains.

The method comprises:

-   -   receiving the subband of the image;    -   defining block regions in the at least two space domains of the        subband;    -   for each defined block region:        -   identifying first wavelet coefficients associated with            coordinate values in the at least two space domains in the            defined block region;        -   computing a correlation matrix between identified wavelet            coefficients to determine the correlation between first            wavelet coefficients according to the at least one color            domain;        -   computing second wavelet coefficients, the computation of            second wavelet coefficients being based on the correlation            matrix and the first wavelet coefficients;    -   computing at least one noise level, the noise level computation        being based on at least one second wavelet coefficient;    -   providing the at least one noise level.

A subband is typically a set of coefficients {d_(c, j) ^(k)(n,m)}_(j, k) with j a scale index (e.g 1, 2, etc.) and k an orientationindex (e.g. 1=vertical, 2=horizontal, 3=diagonal).

A typical image comprises a plurality of color channel such as a redchannel, a blue channel and green channel (if the color model is RGB).It is possible to create a color domain c which comprises three values(e.g. c=1 for red, c=2 for blue and c=3 for green). In addition, atypical image is a 2D grid comprising points or pixels having two spacedomains (for instance, (x, y) or (n, m)), these two space domain beingorthogonal.

As explained above, a subband may comprise wavelet coefficients d_(c, j)^(k)(n, m) associated with coordinate value c in the color domain andwith coordinate values n, m in the space domains.

“Defining block regions in the space domains” may be regrouping pointsof the space domains. For instance, the block regions may be regularrectangles or squares or any other geometrical forms or any arbitraryforms.

In addition, the image comprising two unidimensional space domains, A×Bblock regions may be defined in the two unidimensional space domains.

n and m may be coordinate values respectively in said two space domainswith 0≦n≦N and 0≦m≦M, N and M being integer values. A and B may beintegers.

n and m may verify a·A≦m<(a+1)·A, b·B≦n<(b+1)·B and a=0, 1/A . . .(M−1)/A and b=0, 1/B . . . (N−1)/B.

In such situation, the two unidimensional space domains may define atwo-dimensional space domain (n, m). The two-dimensional space domainmay therefore be split into rectangles of size A×B and the coordinatevalues of a corner of the rectangle may be (aA, bB) with a=0, 1/A . . .(M−1)/A and b=0, 1/B . . . (N−1)/B.

N and M may be the height and the width of the image.

According to a possible embodiment, “identifying first waveletcoefficients” may comprise determining first wavelet coefficientsassociated with coordinate values verifying a·A≦m<(a+1)·A andb·B≦n<(b+1)·B.

In addition, coordinates values of the at least one color domain maycomprise {c₁, c₂, . . . , c_(f)}. “Computing the correlation matrix” maycomprise the computation of each elements {Corr_(g, h)}_(g, h) of thematrix, where g and h being in {1, . . . f}. Corr_(g, h) may be functionof

$\frac{1}{S}{\sum\limits_{p \in S}{{d_{c_{g}}(p)}{d_{c_{h}}(p)}}}$

where S is a surface of the block region, p being a point of the blockregion having coordinate values in the at least two space domains, d_(c)_(g) (p) being the first wavelet coefficient associated with coordinatevalues of point p and with coordinate value c_(g) in the at least onecolor domain, d_(c) _(h) (p) being the first wavelet coefficientassociated with coordinate values of point p and with coordinate valuec_(h) in the at least one color domain.

Hence, the correlation matrix ma be a f×f matrix and each elementCorr_(g, h) of the matrix may correspond to the correlation between thecolor c_(g) and c_(h) for the wavelet coefficients in the block region.

The notation d_(c)(p) is a simplified notation for d_(c, j) ^(k)(p) witha given scale j and a given orientation k (i.e. for a given subband).

The point p may have coordinates value (n, m) in the space domains.Therefore, the Corr_(g, h) may be noted

$\frac{1}{S}{\sum\limits_{{({n,m})} \in S}{{d_{c_{g}}\left( {n,m} \right)}{{d_{c_{h}}\left( {n,m} \right)}.}}}$

If the block region is a rectangle of size A×B and if a corner of therectangle have coordinates (aA, bB), then Corr_(g, h) may be noted

$\frac{1}{AB}{\sum\limits_{\underset{{b \cdot B} \leq n < {{({b + 1})} \cdot B}}{{a \cdot A} \leq n < {{({a + 1})} \cdot A}}}{{d_{c_{1}}\left( {n,m} \right)}{{d_{c_{2}}\left( {n,m} \right)}.}}}$

According to one embodiment, “computing second wavelet coefficients” maycomprise a principal component analysis transform.

Principal component analysis (or PCA) is a mathematical procedure thatuses an orthogonal transformation to convert a set of observations ofpossibly correlated variables into a set of values of linearlyuncorrelated (or mostly uncorrelated) variables called principalcomponents. This transformation is often defined in such a way that thefirst principal component has the largest possible variance, and eachsucceeding component has the highest variance possible under theconstraint that it be orthogonal to (i.e., uncorrelated with) thepreceding components. Principal components are guaranteed to beindependent only if the data set is jointly normally distributed. PCAmay also be named the discrete Karhunen-Loève transform (KLT), theHotelling transform or proper orthogonal decomposition (POD).

Moreover, “computing at least one noise level” may comprise thecomputation of at least a median.

Median is the numerical value separating the higher half of a sample, apopulation, or a probability distribution, from the lower half.

It is possible to compute a median for specific coefficients in thesecond wavelet coefficients.

A median M_(S) for a block region S may be noted M_(S)={|d_(j)^(k)[p]|:p∈S} for a given scale j and a given orientation k (i.e. for agiven subband), p being a point of the space domain.

In addition, “computing second wavelet coefficients” may transform theat least one color domain into at least one new color domain. One medianmay be computed. The latter median may be function of temporary medians,each temporary median of the temporary medians being associated with acoordinate value in the at least one new color domain of the subband,each temporary median being function of the coefficients associated withthe coordinate value in the at least one new color domain of the subbandassociated with.

In such situation the above mentioned block region S corresponds to theentire space domains of the subband (i.e. of the image size).

If the color domain comprises a plurality of coordinate values (forinstance, for the RGB color model), a temporary median may be computedfor each coordinate value of the color domain.

Then, the latter median may be equal to the minimal temporary medians.

In a different embodiment, a plurality of medians may be computed. Eachmedian may be associated with a defined block region. Each median may befunction of temporary medians, each temporary median of the temporarymedians being associated with a coordinate value in the at least one newcolor domain of the subband, each temporary median being function of thecoefficients associated with the coordinate value in the at least onenew color domain of the subband associated with.

In such situation the above mentioned block region S is one of thedefined block regions.

If the color domain comprises a plurality of coordinate values (forinstance, for the RGB color model), a temporary median may be computedfor each coordinate value of the color domain. Then the median may bethe minimal temporary median.

An estimate of the noise level may be the minimal median in theplurality of computed medians.

Another aspect of the invention relates to a computer program productcomprising a computer readable medium, having thereon a computer programcomprising program instructions. The computer program is loadable into adata-processing unit and adapted to cause the data-processing unit tocarry out the method described above when the computer program is run bythe data-processing unit.

Yet another aspect of the invention relates to a device for determiningnoise levels in a subband of an image. The subband comprises at leastone color domain and at least two space domains. The subband comprisesfirst wavelet coefficients associated with coordinate values in the atleast one color domain and the at least two space domains.

The device comprises:

-   -   an input interface for receiving the subband of the image;    -   a circuit for defining block regions in the at least two space        domains of the subband;    -   a circuit for identifying first wavelet coefficients associated        with coordinate values in the at least two space domains in the        identified block;    -   a circuit for computing a correlation matrix between identified        wavelet coefficients to determine the correlation between first        wavelet coefficients according to the at least one color domain;    -   a circuit for computing second wavelet coefficients, the        computation of second wavelet coefficients being based on the        correlation matrix and the first wavelet coefficients;    -   a circuit for computing at least one noise level, the noise        level computation being based on at least one second wavelet        coefficients;    -   an output interface for providing the at least one noise level.

Other features and advantages of the method and apparatus disclosedherein will become apparent from the following description ofnon-limiting embodiments, with reference to the appended drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings, in whichlike reference numerals refer to similar elements and in which:

FIG. 1 a and FIG. 1 b are representations of possible splitting of asubband into a plurality of block regions;

FIGS. 2 a and 2 b represent the correlation of noise levels between twocolor coordinates, respectively in case of a pure noise and in case of anoisy texture;

FIG. 2 c is a representation of a method to compute uncorrelated colorcomponents in case of a noisy texture;

FIG. 3 is a flow chart describing a possible embodiment of the presentinvention;

FIG. 4 is a possible embodiment for a device that enables the presentinvention.

DESCRIPTION OF PREFERRED EMBODIMENTS

An image I[m, n] (with n and m the coordinate values in the image, e.g.the pixel coordinate values) may be transformed into a set of waveletsdecomposition subbands d_(j) ^(k)[n, m], where j is a scale index, and kis an orientation index.

For typical wavelet transforms used for images, (and in particular forthose described in Stéphane Mallat, “Une Exploration des Signaux enOndelettes”, Editions de l'Ecole Polytechnique, ISBN: 2-7302-0733-3 for2D images), the orientation index k is ranging from 1 to 3 (e.g.vertical, horizontal and diagonal). Each subband has a varying sizedepending on a scale index j that ranges from 1 to some maximum value D(integer).

d_(j) ^(k)[m, n] for j=1 . . . D, and k=1 . . . 3.

A standard approach may consist in considering the specific subband d₁^(k)[m, n] for k=1, 2 or 3 (i.e. the subband corresponding to the firstscale, j=1), and to compute the median of the absolute values of thispopulation of coefficients. If the majority of the surface of the imageis covered with high activity texture, resulting in many high-frequencycoefficients, the presence of the texture will bias the noise levelestimation, leading to an overestimation of the noise level.

In order to avoid this drawback, it is possible to split the subband d₁^(k)[m, n] (for k=1, 2 or 3) into blocks of coefficients according tothe following method.

In reference to FIG. 1 a, and assuming that the considered subband d₁^(k)[m, n] (element 100) comprises M×N coefficients d_(j) ^(k)(m, n)with n=1 . . . N and m=1 . . . M, then the subband d₁ ^(k)[m, n](element 100) is split into several blocks {B₁ ^(k) _([a, b])}_(a, b)(elements 101, 102) of size A×B (with a=0, 1/A . . . (M−1)/A and b=0,1/B . . . (N−1)/B).

Block B₁ ^(k) _([a, b]) (element 101) contains the coefficients d_(j)^(k)(m, n) for

a·A≦m<(a+1)·A,

and

b·B≦n<(b+1)·B.

Then a median value M_(a, b) is defined for each block in {B₁ ^(k)_([a, b])}_(a, b) as the median of the set of values {|d_(j) ^(k)[m,n]|:a·A≦m<(a+1)·A and b·B≦n<(b+1)·B}:

M _(a, b)=median({|d _(j) ^(k) [m, n]|:a·A≦m<(a+1)·A and b·B≦n<(b+1)·B})

Therefore if at least one block does not contain texture, it may providea reliable estimate of the noise level. All other blocks may provide anover-estimated noise level.

A reasonable estimate of the noise level is then the minimum of theseblockwise estimates: σ=min_(a, b)(M_(a, b)·C) where the coefficient Cmay be calibrated by doing the same estimation on a known Gaussiansource of the same size and the same number of blocks.

In this embodiment the intersection between two blocks is empty.Nevertheless, it may also be possible to partially superpose blocks forinstance as described in FIG. 1 b. In this latter embodiment, the blocks(elements 103, 104) contain the same number of coefficients i.e. theblocks size are A×B. Block B₁ ^(k) _([a, b]) (element 101) contains thecoefficients d_(j) ^(k)(m, n) for

${{a \cdot \frac{A}{3}} \leq m < {\left( {a + 3} \right) \cdot \frac{A}{3}}},{and}$${b \cdot \frac{B}{3}} \leq n < {\left( {b + 3} \right) \cdot {\frac{B}{3}.}}$

All other adaptations with other sub-sampling factors is possible (herethe sub-sampling factor is 3)

In most case, a texture in a given image I[m, n] contains high frequencycontents. This content may be located on a single color channel, or on alow-dimensional manifold of the color space. For example, as a grasstexture is mostly green, the texture mostly contains high spatialfrequencies on a sub manifold of the color space that contains shades ofgreen.

Real noise on the other hand is often distributed on all three colorchannels (if the color model is not RGB for “Red Green Blue”), so thenoise is colored and is spanning a real three-dimensional subset of thecolor cube. If the color model is not RGB (for instance YCbCr or CMYK orany other color models) the considerations are similar.

FIG. 2 a represents wavelet coefficients of a given subband of a noisedcolor image with two color channels/coordinates (for simplificationpurpose only). This Figure may be generalized with a greater number ofcolor coordinates. The wavelets coefficients are associated with the twocolor coordinates W_(C1) and W_(C2) representing the two colors C1 andC2.

This image contains noise without any texture. Therefore, the dots 201represent the population of wavelet coefficients of the channels withnoise. The population is in a centered circle 202 without any privilegeddirection.

In such situation, where then distribution of population is symmetricaccording to a point 205, the wavelet components W_(C1) and W_(C2)(representing the channels of the image) are uncorrelated.

FIG. 2 b represents wavelet coefficients of a given subband of a noisedcolor image with two color channels, the image having a texturedcontent. The wavelets coefficients are associated with the two colorcoordinates W_(C1) and W_(C2) representing the two colors C1 and C2.

Therefore, the dots 203 represent the population of wavelet coefficientsof subband according to the color coordinates. The population may begrouped in an ovoid 204. The ovoid 204 have a privileged direction 206.

Since the noise-free texture is assumed to be lying on a smalldimensional manifold, the form 204 is flat and elongated along aprincipal direction 206.

In the situation represented in FIG. 2 b, the population of coefficientsis correlated as the distribution along each axis W_(C1) and W_(C2)arenot uniform.

Nevertheless, it is possible to “rotate” the color axis to obtain twonew uncorrelated color components W′_(C1) and W′_(C2) as described inFIG. 2 c. Therefore, the rotated ovoid 207 is similar to the ovoid 204of FIG. 2 b (disregarding the rotation).

To compute uncorrelated components, it is possible to use a Principalcomponent analysis (PCA) mathematical procedure to convert thecorrelated population of coefficients into a set of values of linearlyuncorrelated variables.

Once the color component have been “rotated”, it is possible to easilycompute a noise level for the subband coefficients.

In FIG. 2 c, the median of coefficients along the axis W′_(C1) issmaller than the median of coefficients along the axis W′_(C2). Inconsequence, in case of colored texture, W′_(C1) mostly carries noise.

The objective of this transformation is to capture a value which isproportional to a noise level, the captured value being the width ofovoid (arrow 208 in FIG. 2 c) and not width of the projection of theovoid onto a random axis (arrow 209 in FIG. 2 b), which would be muchlarger.

FIG. 3 is a flow chart describing a possible embodiment of the presentinvention. Part of this flow chart may represent steps of an example ofa computer program which may be executed by the device of FIG. 4.

Upon the reception of an input image 300, this input image 300 may bedecomposed into a plurality of subbands (step 301). Each subband may beassociated with a given scale/resolution j (in reference of amultiresolution wavelet transform), a color c, and an orientation k (forinstance, three possible orientations).

Using the notion of a multiresolution analysis, it is possible to“project” the images values of the image onto a span of functions toobtain a plurality of resolution approximations (i.e. scales, elements302, 303).

Each scales (302, 303, etc) may comprises a plurality of subband(characterized for instance by an orientation k).

Each subband (defined by k and j) may be decomposed (step 304) into aplurality of blocks {B_(j) ^(k) _([a, b])}_(a, b) as described in FIG. 1b or FIG. 1 b. The following description uses the notations introducedin the description in relation with these Figures.

For each block B_(j) ^(k) _([a, b]) of the subband (j, k), a noise levelis to be computed. Therefore, if the noise level of one block in {B_(j)^(k) _([a, b])}_(a, b) has not been computed (test 305, output OK), thefollowing steps 306, 307,308 are executed.

At first, indexes n, m are determined so that:

a·A≦m<(a+1)·A,

and

b·B≦n<(b+1)·B.

The wavelet coefficients d_(c, j) ^(k)(n, m) on such a range of indexesn, m are also determined for all color components of the image (and ofthe subband) (the image being encoded according a model in RGB, YCbCr,etc. model), where the index ‘c’ is denoting the color index for thecolor domain (e.g. c=1 for red, c=2 for green and c=3 for blue in RGB orsimilarly for a YCbCr color space).

For simplification purpose, it is assumed that the color model used tocode the image is RGB and thus that there are three color components.

The wavelet coefficients being of zero mean, a correlation matrix ofcoefficients between colors may be computed (step 306). For instance,the correlation matrix of d_(c1, j) ^(k)(n, m) and d_(c2, j) ^(k)(n, m)is

${{Corr}_{a,b}\left( {c_{1},c_{2}} \right)} = {\frac{1}{AB}{\sum\limits_{\underset{{b \cdot B} \leq n < {{({b + 1})} \cdot B}}{{a \cdot A} \leq n < {{({a + 1})} \cdot A}}}{{d_{c_{1},j}^{k}\left( {n,m} \right)}{{d_{c_{2},j}^{k}\left( {n,m} \right)}.}}}}$

A “Principal component analysis” (or PCA) may be computed (step 307)with theses correlations matrixes {Corr_(a, b)(c₁, c₂): c₁=1 . . . 3 andc₂=1 . . . 3}. The correlation matrix Corr_(a, b) may be notedCorr_(a, b)=U D U^(T) where U is an orthogonal matrix and D is adiagonal matrix with decreasing diagonal coefficients. The matrix U is amatrix of eigenvectors which diagonalizes the matrix Corr_(a, b). D isthe diagonal matrix of eigenvalues of Corr_(a, b). This step willtypically involve the use of a computer-based algorithm for computingeigenvectors and eigenvalues. These algorithms are readily available assub-components of most matrix algebra systems.

Once the matrix U determined, applying U^(T) to the vector of waveletcolor components generates new uncorrelated coefficients:

$\begin{bmatrix}{C_{{jk}\; 1}\left( {n,m} \right)} \\{C_{{jk}\; 2}\left( {n,m} \right)} \\{C_{{jk}\; 3}\left( {c,m} \right)}\end{bmatrix} = {U^{T} \times \begin{bmatrix}{d_{1,j}^{k}\left( {n,m} \right)} \\{d_{2,j}^{k}\left( {n,m} \right)} \\{d_{3,j}^{k}\left( {n,m} \right)}\end{bmatrix}}$

This application of U^(T) to the vector of components may be done blockby block (i.e. for n and m that verify a·A≦m<(a+1)·A, andb·B≦n<(b+1)·B), so that the PCA (for “Principal component analysis”) maybe adapted locally on the texture properties.

Then, the noise level may be estimated (step 308) from the median of thewhole subband C_(jk3)(n, m) or blockwise from this subband as describedabove.

Alternatively, it can be computed by doing a blockwise median estimationon

-   -   blocks of C_(jk1)[n, m],    -   blocks of C_(jk2)[n, m],    -   blocks of C_(jk3)[n, m],

and by computing the minimum of all blockwise medians obtained with allthe above blockwise median estimations.

The noise level estimation for each subband may be stored in a database309 or in a memory for future use.

Once the noise level of all blocks in {B_(j) ^(k) _([a, b])}_(a, b) hasbeen computed (test 305, output KO), a filter may be applied (step 310)for instance on the subband or on the image. Many noise reductionfilters may be used such as NL-means, linear smoothing filters,anisotropic diffusion filters, etc. according to the noise level storedin the database 309.

When all new scales (311, 312, 313) are available, a new image 315 maybe constructed (step 314) according to these new scales with an inversewavelet transformation.

FIG. 4 is a possible embodiment for a device that enables the presentinvention.

In this embodiment, the device 400 comprise a computer, this computercomprising a memory 405 to store program instructions loadable into acircuit and adapted to cause circuit 404 to carry out the steps of thepresent invention when the program instructions are run by the circuit404.

The memory 405 may also store data and useful information for carryingthe steps of the present invention as described above.

The circuit 404 may be for instance:

-   -   a processor or a processing unit adapted to interpret        instructions in a computer language, the processor or the        processing unit may comprise, may be associated with or be        attached to a memory comprising the instructions, or    -   the association of a processor/processing unit and a memory, the        processor or the processing unit adapted to interpret        instructions in a computer language, the memory comprising said        instructions, or    -   an electronic card wherein the steps of the invention are        described within silicon, or    -   a programmable electronic chip such as a FPGA chip        (for<<Field-Programmable Gate Array>>).

This computer comprises an input interface 403 for the reception ofsubbands and an output interface 406 for providing a noise level.

To ease the interaction with the computer, a screen 401 and a keyboard402 may be provided and connected to the computer circuit 404.

A person skilled in the art will readily appreciate that variousparameters disclosed in the description may be modified and that variousembodiments disclosed may be combined without departing from the scopeof the invention.

What is claimed is: 1-10. (canceled)
 11. A method for determining anoise level in a sub-band of an image, the method comprising: receivingthe sub-band of the image, the image being expressed by a color domaincomprising a plurality of color channels; dividing the sub-bandspatially into a plurality of blocks; determining a first waveletcoefficient for each of the blocks; computing a correlation matrixbetween each of the color channels for each of the blocks; computing aplurality of second wavelet coefficients based on the correlation matrixand the first wavelet coefficients for each of the blocks; anddetermining the noise level based on the second wavelet coefficients.12. The method of claim 11, wherein each block comprises a plurality ofpoints and wherein each value of the correlation matrix represents acorrelation between two color channels for a corresponding point of theblock.
 13. The method of claim 11, wherein the computing the secondwavelet coefficients comprises: determining an orthogonal transformationmatrix based on the correlation matrix; and generating the secondwavelet coefficients by applying the orthogonal transformation matrix tothe first wavelet coefficients.
 14. The method of claim 13, wherein theorthogonal transformation matrix is selected such that the noise in thesecond wavelet coefficients is substantially uncorrelated.
 15. Themethod of claim 11, wherein each of the blocks at least partiallyoverlaps an adjacent one of the blocks.
 16. The method of claim 11,wherein the determining the noise level determining the minimum medianof the second wavelet coefficients.
 17. The method of claim 11, whereinthe computing the second wavelet coefficients comprises transforming thecolor domain into a new color domain and wherein the noise in each colorchannel of the new color domain is substantially uncorrelated.
 18. Adevice for determining a noise level in a sub-band of an image, thedevice comprising: an input interface configured to receive the sub-bandof the image, the image being expressed by a color domain comprising aplurality of color channels; a memory configured to store the sub-band;and a processor operatively coupled to the memory and the inputinterface and configured to: divide the sub-band spatially into aplurality of blocks; determine a first wavelet coefficient for each ofthe blocks; compute a correlation matrix between each of the colorchannels for each of the blocks; compute a plurality of second waveletcoefficients based on the correlation matrix and the first waveletcoefficients for each of the blocks; and determine the noise level basedon the second wavelet coefficients.
 19. The device of claim 18, whereineach block comprises a plurality of points and wherein each value of thecorrelation matrix represents a correlation between two color channelsfor a corresponding point of the block.
 20. The device of claim 18,wherein the processor is further configured to compute the secondwavelet coefficients based on: determining an orthogonal transformationmatrix based on the correlation matrix; and generating the secondwavelet coefficients by applying the orthogonal transformation matrix tothe first wavelet coefficients.
 21. The device of claim 20, wherein theprocessor is further configured to select orthogonal transformationmatrix such that the noise in the second wavelet coefficients issubstantially uncorrelated.
 22. The device of claim 18, wherein each ofthe blocks at least partially overlaps an adjacent one of the blocks.23. The device of claim 18, wherein the processor is further configuredto determine the noise level based on determining the minimum median ofthe second wavelet coefficients.
 24. The device of claim 18, wherein theprocessor is further configured to compute the second waveletcoefficients based on transforming the color domain into a new colordomain and wherein the noise in each channel of the new color domain issubstantially uncorrelated.
 25. An apparatus, comprising: means forreceiving a sub-band of an image, the image being expressed by a colordomain comprising a plurality of color channels; means for dividing thesub-band spatially into a plurality of blocks; means for determining afirst wavelet coefficient for each of the blocks; means for computing acorrelation matrix between each of the color channels for each of theblocks; means for computing a plurality of second wavelet coefficientsbased on the correlation matrix and the first wavelet coefficients foreach of the blocks; and means for determining the noise level based onthe second wavelet coefficients.
 26. The apparatus of claim 25, whereinthe means for computing the second wavelet coefficients comprises: meansfor determining an orthogonal transformation matrix based on thecorrelation matrix; and means for generating the second waveletcoefficients by applying the orthogonal transformation matrix to thefirst wavelet coefficients.
 27. The apparatus of claim 26, wherein theorthogonal transformation matrix is selected such that the noise in thesecond wavelet coefficients is substantially uncorrelated.
 28. Anon-transitory computer readable medium comprising code that, whenexecuted, causes an apparatus to perform a process comprising: receive asub-band of an image, the image being expressed by a color domaincomprising a plurality of color channels; divide the sub-band spatiallyinto a plurality of blocks; determine a first wavelet coefficient foreach of the blocks; compute a correlation matrix between each of thecolor channels for each of the blocks; compute a plurality of secondwavelet coefficients based on the correlation matrix and the firstwavelet coefficients for each of the blocks; and determine the noiselevel based on the second wavelet coefficients.
 29. The non-transitorycomputer readable medium of claim 28, further comprising code that, whenexecuted, causes the apparatus to compute the second waveletcoefficients based on: determining an orthogonal transformation matrixbased on the correlation matrix; and generating the second waveletcoefficients by applying the orthogonal transformation matrix to thefirst wavelet coefficients.
 30. The non-transitory computer readablemedium of claim 29, further comprising code that, when executed, causesthe apparatus to select the orthogonal transformation matrix such thatthe noise in the second wavelet coefficients is substantiallyuncorrelated.